Document editing systems come in all shapes and sizes and handle complex documents containing different elements. These documents may include traditional word processing documents or spreadsheets, as well as considerably more complex document types such as web sites, e-shops, charts, multi-media presentations to name a few. Such documents often combine regular visual elements (e.g. text and pictures) with procedural and/or action elements (such as navigation buttons) which allow a user to move from one document page to another.
Such systems typically employ a number of mechanisms to allow the creation and maintenance of complex documents, often including thousands of elements of all types. One such mechanism is hierarchical document organization where documents are defined in terms of a hierarchy of their elements. Leaf and non-leaf nodes of the hierarchy may be maintained separately. Another such mechanism is the use of an inheritance relationship between document elements. A document element may be defined based on another document element (to which modifications are applied) and so on.
Complex documents often include multiple pages which share common layouts, colors and elements. This feature has many names in different systems such as template, master pages or master slides. To implement this capability, systems known in the art may allow a designer to define an inheritance relationship between elements in the document. With this relationship, document elements of all levels may serve as template elements to other elements. The pertinent system may also implement multi-level inheritance (e.g. A inherits from B which inherits from C) as well as multiple inheritance (e.g. A inherits from both B and C). The inheritance relationships between document elements are not required to follow the hierarchical document structure. For example, multi picture components contained within multiple containers may all inherit certain properties (such as the way the picture frame is designed) from a common template picture element defined in a separate place within the hierarchy. However, the inheritance relationships do have to form a directed acyclic graph so that no circular inheritance paths exist. Elements which inherit properties from other elements may modify and/or override some properties. For example, a regular page A may inherit a set of components from a master page B and add additional components or change some display properties specified by master page B. Inheritance may be dynamic or inherit-by-copy. If A inherits from B through dynamic inheritance and B is modified, the modifications made to B are automatically reflected in A. In the inherit-by copy case, the changes made to B are not reflected in A which inherited from B only by copying it.
Complex document editing systems typically allow its users to assign colors to various parts and sub-parts of the document. The colors help to make the documents more visually appealing and help to differentiate between different features of a document. For example, text appears distinctly from its background, pop-up warnings can appear in a color distinct from the regular page etc.
A designer may assign specific colors to various elements in a document and colors may be assigned according to a particular role. For example, the designer may assign the color red to the role of a fill color of a rectangular shaped element and the color blue to the role of frame color of the same rectangle component. The pertinent editing system may support assigning colors to color roles at the element definition level, e.g. use the color red as the fill color for all rectangles created from now on, or for all rectangles in the document in general (including existing rectangles). The system may also support assigning colors to color roles at the specific element creation level, e.g. use the blue color for the rectangle being created right now.
Some color assignments may be non-atomic by nature e.g. a text paragraph can have a different color (and background color) for each letter of the text. Container elements may also have colors assigned to them. For example a container component may have the color blue assigned as the background color for the container's content and brown for the container's frame. For document editing systems that implement inheritance support, colors are inheritable properties and can be modified in any inherited element.
For most document editing systems, colors are typically selected using a color picker user interface. In general color pickers can be classified into two types, unstructured color pickers and structured color pickers. Unstructured color pickers typically allow colors to be selected from the entire color gamut available in one or more color spaces such as that provided in Microsoft's Office which is shown in regular mode (FIG. 1), customized RGB mode (FIG. 2) and customized HSL (hue, saturation, lightness) mode (FIG. 3). Another example is the color picker provided by IDM Computer Solution's UltraEdit product (FIG. 4).
Structured color pickers provide for the selection of colors from a set of variations of a basic color scheme. These variations are typically lighter or darker variations of the basic colors of the color schemes and can also be tints and shades of the colors. The pertinent document editing system typically provides a set of predefined color schemes for use in all documents, with some systems providing the ability to expand the set or edit the color schemes. The colors specified in the color scheme may be known as the principal colors and the tints and shades may be known as the subordinate colors. The system typically generates these variations by creating for each principal color, a set of subordinate colors having the same basic hue but different lightness or luminance value as defined in the standard HSL (hue, saturation, lightness) or HSV (hue, saturation, value) color models.
A color picker typically includes two user interface elements, one to select which color scheme to be used (sometimes known as the scheme picker) and one to allow the selection of an actual color such as is illustrated in FIGS. 5 and 6 to which reference is now made. FIG. 5 shows Microsoft PowerPoint 2007's color scheme picker and FIG. 6 shows Microsoft PowerPoint 2007's theme color picker.
The principal colors and subordinate colors are typically organized (and displayed) in a type of matrix format with the principal colors forming the top row and the subordinate colors for each principal color stemming from them as a column as is illustrated in FIG. 7 to which reference is now made. FIG. 7 illustrates a basic color scheme matrix with five principal colors, each of them having five subordinate colors.
An important feature of systems which include a structured color picker is the ability to replace some or all of the colors in the color scheme—both the principal colors and the subordinate colors—and thereby affect the color assignment. This may be implemented in various ways. The first is by replacing the current color scheme by selecting a new color scheme using the scheme picker. This replaces all the principal colors and the subordinate colors associated with them. The second method is by replacing a specific principal color by selecting a new color for the given principal color position. The associated subordinate colors are also replaced by the relevant color variations of the new principal color. The third method is replacing a specific subordinate color. This would make the replaced subordinate color to be “out of line” with the rest of the subordinate colors located in the same column within the matrix. Therefore, when assigning a color from a color scheme matrix to a document element, what is really assigned is the color scheme matrix cell index. For example, if the color from cell [3,4] is in use (3rd column, 4th row of the color scheme) as the fill color for a given rectangle, e.g. light red, and the value of cell [3,4] is changed to dark blue, the fill color for the given rectangle would change to dark blue. This change would happen regardless of the way in which cell [3,4] is modified.